# !/usr/bin/env python
# -*- coding: utf-8 -*-
"""
 -------------------------------------------------
    File Name:     conftest.py
    Description:   
 -------------------------------------------------
 """

import os
import pytest
# from utils.yaml_loader import load_yaml
from apitesting.common.file.yaml_handler import yaml_handler


def pytest_generate_tests(metafunc):
    """
    动态生成测试用例

    如果测试集合存储在多个 YAML 文件中，可以通过遍历目录的方式动态加载所有文件，并生成对应的测试用例。
    """
    if "test_case" in metafunc.fixturenames:
        # 遍历 test_cases 目录下的所有 YAML 文件
        test_files = [os.path.join("test_cases", f) for f in os.listdir("test_cases") if f.endswith(".yaml")]

        # 读取所有测试用例存储到列表中
        test_cases = []
        for file in test_files:
            suite = yaml_handler.yaml_handler(file)
            test_cases.extend(suite["test_cases"])

        # 参数化测试用例
        metafunc.parametrize("test_case", test_cases, ids=[case["case_name"] for case in test_cases])
